<?php
//TIPOS DE INASISTENCIAS = ESTADO DETALLE ASISTENCIA
//Ultima verificacion: 12-10-2014 ; 21-11-2014 ; 20-02-2015 (Ultima verificacion)
class M_tipo_inasistencia extends CI_Model {
	function _construct(){
		//Call the Model constructor
		parent::_construct();
	}
	
	//Este metodo se utiliza cuando queremos obtener los tipos de inasistencias existentes menos los borrados.
	function buscar(){
		$consulta = $this->db->query("SELECT estadodetalleasistencia.*, 
											DATE_FORMAT(estadodetalleasistencia.fechaCreacion,'%d/%m/%Y %H:%i:%s') AS fechaCreacionFormateada, 
											DATE_FORMAT(estadodetalleasistencia.fechaUltimaModificacion,'%d/%m/%Y %H:%i:%s') AS fechaUltimaModificacionFormateada
									  FROM estadodetalleasistencia
									  WHERE estadodetalleasistencia.estado<>-1
									  ORDER BY estadodetalleasistencia.orden ASC");
		return($consulta);
	}
			
	//Este metodo se utiliza cuando queremos obtener los tipos de inasistencias activos
	function buscarActivos(){
		$consulta = $this->db->query("SELECT estadodetalleasistencia.*, 
											DATE_FORMAT(estadodetalleasistencia.fechaCreacion,'%d/%m/%Y %H:%i:%s') AS fechaCreacionFormateada, 
											DATE_FORMAT(estadodetalleasistencia.fechaUltimaModificacion,'%d/%m/%Y %H:%i:%s') AS fechaUltimaModificacionFormateada
									  FROM estadodetalleasistencia
									  WHERE estadodetalleasistencia.estado=1
									  ORDER BY estadodetalleasistencia.orden ASC");
		return($consulta);
	}
	
	//Este metodo se utiliza para eliminar un tipo de inasistencia
	function eliminar($idEstadoDetalleAsistencia=null, $idDestructor=null){
		$consulta = $this->db->query("UPDATE `estadodetalleasistencia` 
									 SET `estado` = -1,
										 `idDestructor` = ". $this->db->escape($idDestructor) ."
							         WHERE `estadodetalleasistencia`.`idEstadoDetalleAsistencia` = " . $this->db->escape($idEstadoDetalleAsistencia) . " LIMIT 1");
		return($this->db->affected_rows());
	}
	
	//Este metodo se utiliza para crear un tipo de inasistencia
	function crear($orden=null, $nombre=null, $valor=null, $descripcion=null, $estado=null, $idCreador=null){
		$this->db->query("INSERT INTO `estadodetalleasistencia` (`idEstadoDetalleAsistencia`,`orden`,`nombre`,`valor`,`descripcion`,`fechaCreacion`,`estado`,`idCreador`) VALUES 
																(NULL,".$this->db->escape($orden).",".$this->db->escape($nombre).",".$this->db->escape($valor).",".$this->db->escape($descripcion).",now(),".$this->db->escape($estado).",".$this->db->escape($idCreador).")");
		return($this->db->affected_rows());
	}
	
	//Este metodo se utiliza cuando queremos devolver un tipo de inasistencia en particular usado generalmente en el formulario de modificar o bien
	//para validar que un tipo de inasistencia pasado por la url sea existente.
	function get($idEstadoDetalleAsistencia=null){
		$consulta = $this->db->query("SELECT *
									  FROM estadodetalleasistencia
									  WHERE estado<>-1 AND idEstadoDetalleAsistencia=".$this->db->escape($idEstadoDetalleAsistencia)."
									  LIMIT 1");
		return($consulta);
	}
	
	//Este metodo se utiliza cuando queremos devolver el tipo de inasistencia contiguo a uno en particular usado generalmente en el formulario de modificar
	function getContiguo($idEstadoDetalleAsistencia=null, $cant=null){
		do{
			$idEstadoDetalleAsistencia+=$cant;
			$consulta = $this->db->query("SELECT *
										  FROM estadodetalleasistencia
										  WHERE idEstadoDetalleAsistencia=".$this->db->escape($idEstadoDetalleAsistencia)."
										  LIMIT 1");
			if($consulta->num_rows == 0)
				return(0);
			
		}while($consulta->row()->estado=='-1');
		
		return($consulta->row()->idEstadoDetalleAsistencia);
	}
	
	//Este metodo se utiliza para modificar un tipo de inasistencia
	function modificar($idEstadoDetalleAsistencia=null, $orden=null, $nombre=null, $valor=null, $descripcion=null, $estado=null){
		$consulta = $this->db->query("UPDATE `estadodetalleasistencia`
									 SET `orden` = ". $this->db->escape($orden) .",
										 `nombre` = ". $this->db->escape($nombre) .",
										 `valor` = ". $this->db->escape($valor) .",
										 `descripcion` = ". $this->db->escape($descripcion) .",
										 `estado` = ". $this->db->escape($estado) ."
							         WHERE `estadodetalleasistencia`.`idEstadoDetalleAsistencia` = " . $this->db->escape($idEstadoDetalleAsistencia) . " LIMIT 1");
		return($this->db->affected_rows());
	}
}
?>